package cn.net.autocode.files.excel.handle;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class DateTools {

    /**
     * LocalDate日期格式化,默认当前日期
     * @param formatStr 格式化形式
     * @return 格式化字符串
     */
    public static String format(String formatStr){
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern(formatStr);
        return dtf.format(LocalDate.now());
    }

    /**
     * LocalDate日期格式化
     * @param localDate 需要格式化的日期
     * @param formatStr 格式化形式
     * @return 格式化字符串
     */
    public static String format(LocalDate localDate,String formatStr){
        if(formatStr==null||formatStr.isBlank()){
            formatStr = "yyyy-MM-dd HH:mm:ss";
        }
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern(formatStr);
        return dtf.format(localDate);
    }

    /**
     * LocalDateTime时间格式化
     * @param localDateTime 需要格式化的时间
     * @param formatStr 格式化形式
     * @return 格式化后的字符串
     */
    public static String format(LocalDateTime localDateTime, String formatStr){
        if(formatStr==null||formatStr.isBlank()){
            formatStr = "yyyy-MM-dd HH:mm:ss";
        }
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern(formatStr);
        return dtf.format(localDateTime);
    }

    /**
     * Date格式化
     * @param date 需要格式化的时间
     * @param formatStr 格式化形式
     * @return 格式化后的字符串
     */
    public static String format(Date date, String formatStr){
        if(formatStr==null||formatStr.isBlank()){
            formatStr = "yyyy-MM-dd HH:mm:ss";
        }
        SimpleDateFormat dtf = new SimpleDateFormat(formatStr);
        return dtf.format(date);
    }

    /**
     * 字符串转换为Date类型
     * @param dateStr 需要转换的字符串
     * @param formatStr 格式化形式
     * @return
     */
    public static Date parseDate(String dateStr,String formatStr){
        SimpleDateFormat dtf = new SimpleDateFormat(formatStr);
        try {
            return dtf.parse(dateStr);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            return null;
        }

    }

}
